When GINO is first initialized, it enters a state where a small number of operations can take place. These include setting error and tracer operation, initializing gDebug() and nominating a graphics device. GINO can exist in fact in one of five states as shown in the diagram below. An application can enquire which state GINO is in through the routine gEnqGinoState():
gEnqGinoState(gstate)where gstate returns the state of GINO and all its associated libraries. The structure member .gino contains the GINO state, in the range 1 to 5, and other members of the structure indicate whether associated libraries are active or not.
GINO will automatically move from one state to another through the calling of certain routines, (eg. gCloseSeg() will move GINO from state 5 to state 4), while some routines are only permitted while GINO is in a particular state (eg. Device Qualifying routines are only permitted while GINO is in state 2). In some cases GINO may move through a number of states by a single GINO routine (eg. a call to gDrawLineTo2D() after device nomination will move GINO from state 2 to 5, and a call to gCloseDevice() will move GINO to state 1 which ever state it was in at the time).
![]() |
GINO States |